package main

import "fmt"

type Foo2 struct {
	Name string `json:"name"`
}

func foo2 (_f *Foo2) {
	fmt.Printf("in callee %p\n", &_f)
	__f := Foo2{Name: "test"}
	// 由于参数是按值传递 这样的赋值是无效的
	_f = &__f
	//*_f = __f
}

func main () {
	_f := Foo2{}
	fmt.Printf("in caller %p\n", &_f)
	foo2(&_f)
	fmt.Print(_f)
}
